package top.lixunda.commerce.common.core.entity;

import lombok.Getter;
import lombok.ToString;

import java.util.HashMap;
import java.util.Map;

/**
 * Message，服务器返回客户端消息格式
 *
 * @author Xumda
 * @deprecated 2019年12月17日14:40:56
 */
@SuppressWarnings("ALL")
@Getter
@ToString
public class Message {

    /**
     * 状态码
     * 1xx 临时响应
     * 2xx 成功
     * 3xx 重定向
     * 4xx 请求错误，客户端请求或参数错误
     * 5xx 服务器错误
     * x51-x99 通用异常占用，自定义异常尽量使用x01-x50
     */
    private int code;

    private String msg;

    private Map<String, Object> data = new HashMap<>();

    public static Message newInstance() {
        return new Message();
    }

    public Message setCode(int code) {
        this.code = code;
        return this;
    }

    public Message setMsg(String msg) {
        this.msg = msg;
        return this;
    }

    public Message setData(Map<String, Object> data) {
        this.data = data;
        return this;
    }

    public Message add(String key, Object value) {
        this.data.put(key, value);
        return this;
    }

    public static Message success(String msg) {
        return new Message().setCode(200).setMsg(msg);
    }

    public static Message error(String msg) {
        return new Message().setCode(400).setMsg(msg);
    }

}
